package com.zzyl.service;

import com.zzyl.base.PageBean;
import com.zzyl.dto.NursingLevelDto;
import com.zzyl.dto.NursingLevelPageQueryDto;
import com.zzyl.entity.NursingLevel;
import com.zzyl.vo.NursingLevelVo;

import java.util.List;

public interface NursingLevelService {

    /**
     * 分页查询护理等级信息
     *
     * @param dto 护理等级分页条件查询Dto
     * @return {@code PageBean<NursingLevelVo> }
     * @author YiSheep
     */
    PageBean<NursingLevelVo> pageQuery(NursingLevelPageQueryDto dto);

    /**
     * 插入护理等级信息
     *
     * @param dto 护理等级Dto
     * @author YiSheep
     */
    void addNursingLevel(NursingLevelDto dto);

    /**
     * 根据ID查询护理等级信息
     *
     * @param id 护理等级ID
     * @return {@code NursingLevelVo }
     * @author YiSheep
     */
    NursingLevelVo getDetailById(Long id);

    /**
     * 更新护理等级信息
     *
     * @param dto 护理等级Dto
     * @author YiSheep
     */
    void updateNursingLevel(NursingLevelDto dto);

    /**
     * 删除护理等级信息
     *
     * @param id 护理等级ID
     * @author YiSheep
     */
    void deleteById(Long id);

    /**
     * 启用/禁用护理等级
     *
     * @param id     护理等级ID
     * @param status 状态
     * @author YiSheep
     */
    void enableOrDisable(Long id, Integer status);

    /**
     * 查询所有护理等级信息
     *
     * @return {@code List<NursingLevel> }
     * @author YiSheep
     */
    List<NursingLevel> getAllNursingLevel();
}
